import * as Icons from '@element-plus/icons-vue'

/**
 * 根据图标名称获取图标组件
 * @param {string} iconName 图标名称
 * @returns {Component} 图标组件
 */
export function getIconComponent(iconName) {
  return Icons[iconName] || null
}

/**
 * 将菜单数据中的 icon 字符串替换为实际的图标组件
 * @param {Array} menuItems 菜单数据数组
 * @returns {Array} 替换后的菜单数据数组
 */
export function parseIcons(menuItems) {
  return menuItems.map(item => {
    if (item.icon) {
      item.icon = getIconComponent(item.icon)
    }
    if (item.children && item.children.length > 0) {
      item.children = parseIcons(item.children) // 递归处理子菜单
    }
    return item
  })
}
